let obj = {
    a: 1,
    b: {
        c: 2
    }
}

let state = new Proxy(obj, {
    get(obj, key) {
        console.log('get', obj, key);
        return Reflect.get(obj, key);
    },
    set(obj, key, value) {
        Reflect.set(obj, key, value)
        console.log('set', obj, key, value);
    }
})

state.a = 3;

console.log(state.a);


// let arr = [1, 2, 3];
// let state = new Proxy(arr, {
//     get(obj, key) {
//         console.log('get', obj, key);
//         return obj[key];
//     },
//     set(obj, key, value) {
//         // Reflect.set(obj, key, value);
//         console.log('set', obj, key, value);
//         obj[key] = value
//             // return true
//     }
// })
// console.log(arr[0]);
// console.log(state);

// arr.push(5);
// // console.log(arr);